When an operation is performed in software applications, the operation may typically either succeed or fail immediately. This behavior may be called a synchronous application behavior. However, there are many cases of asynchronous application behaviors in software applications as well. In such cases, the application may not complete synchronously as soon as a user takes a particular operation. For example, when working with collaborative or line of business (“LOB”) systems, a software application tends to be structured in a more complex manner. The application may trigger a workflow that is routed to multiple users via a collaboration server. The application may also trigger a workflow over a LOB system. In addition, many operations on a LOB system inherently take a “long” time because many interconnected systems need to work in serial to get the entire LOB system to behave appropriately.
There may be LOB and collaborative systems/applications that understand the inherent asynchronous nature of the information and processes they are dealing with, and build the asynchronous behaviors into their user experience. However, those systems/applications are perceived as complex and difficult to use. Therefore, there is a need to enable asynchronous data-exchange and business-processes by building on top of and extending existing underlying communication protocols that are inherently synchronous.
It is with respect to these and other considerations that the present invention has been made.